package com.sodimac.v2s.commands
{
	import com.adobe.cairngorm.commands.ICommand;
	import com.adobe.cairngorm.control.CairngormEvent;
	import com.sodimac.util.alerts.alert;
	import com.sodimac.util.commons.UtilString;
	import com.sodimac.util.commons.UtilXml;
	import com.sodimac.v2s.business.PODelegate;
	import com.sodimac.v2s.events.cargarInfoPOEvent;
	import com.sodimac.v2s.model.ComprasModelLocator;
	
	import mx.rpc.IResponder;
	
	public class obtenerInfoPOCommand implements ICommand, IResponder
	{
		private var modelo:ComprasModelLocator = ComprasModelLocator.getInstance();
		
		
		public function execute(event:CairngormEvent):void
		{
			var delegate:PODelegate = new PODelegate(this);
			var infoPO:cargarInfoPOEvent = cargarInfoPOEvent(event);
			
			delegate.ConsultaInfoPO(modelo.cabecera, 
									infoPO.idPedidoCorp, 
									infoPO.idEmpresa, 
									infoPO.idPais, 
									infoPO.numeroOC, 
									infoPO.numeroPO);
		}
		
		
		
    	public function result(obj: Object): void
        {            
			var xmlList:XMLList;
			var xml:XML = new XML(obj.result);
			xml = UtilXml.removeNamespacesFromXML(xml);
		 	xmlList = xml.children();
		 	
			var result:Number = Number(xmlList.cabecera.@id);
			var glosa:String =  xmlList.cabecera.@glosa;
			trace("WS ConsultaPO response id="+ result);

			switch (result){
			case 0:   //Ok
						var po:String = String(xmlList.payload.POPais.archivoPO);
						trace("existe Archivo PO   -->" + po);
						modelo.existeArchivoPO = po;
						modelo.existeOC = "0";
						break;
						
	  	    case 1:   //Error
	  	    			if (UtilString.equalsIgnoreCase(glosa,"Orden de compra no existe."))
	  	    			{
	  	    				modelo.existeOC = "1";  //no existe OC
	  	    			}
	  	      			alert.error("Ha ocurrido un error:\n\n"+  glosa);
	  	      			break;
	  	      			
	  	    default:  //reintentar
	  	     	  	    alert.info("Problemas con respuesta del servicio, " + 
	  	     	  	    		   "favor reintente mas tarde.\n\n"+ glosa);
	  	      			break;                 	      						
	  	    }


        }
                
        public function fault(obj: Object): void
        {
        	alert.error("Ha Ocurrido un Error al cargar Datos SFP.");
        }	 
				
			
	}
}